/**
 * @file ringArray.h
 * @author xzq@qq.com
 * @brief
 * @version 0.1
 * @date 2024-10-26
 *
 * @copyright Copyright (c) 2024
 *
 */
#ifndef _RINGARRAY_H
#define _RINGARRAY_H

#include "stdint.h"

enum xRingArrayStatus
{
	raTrue,
	raFalse,
};
typedef enum xRingArrayStatus raStatus_t;

struct xRingArray
{
	int8_t *date;
	int32_t head;
	int32_t tail;
	uint32_t date_max;
};
typedef struct xRingArray xRingArray_t;

#ifdef __cpluscplus
extern "C"
{
#endif

extern raStatus_t xRingArrayCreate(xRingArray_t *rb, uint32_t size);
extern raStatus_t xRingArrayDestory(xRingArray_t *rb);
extern raStatus_t xRingArrayAvailable(xRingArray_t *rb);
extern raStatus_t xRingArrayWrite(xRingArray_t *rb, uint8_t c);
extern raStatus_t xRingArrayRead(xRingArray_t *rb, void *c);
extern raStatus_t xRingArrayFlush(xRingArray_t *rb);

#ifdef __cpluscplus
}
#endif

#endif
